package com.xl.rpc.client;

import com.xl.rpc.Peer;
import com.xl.rpc.transport.TransportClient;

import java.util.List;

/**
 * 表示选择哪个server去连接
 * @author 辜圆圆
 * @description: gzy的项目
 * @date 2020/3/10 1:51 AM
 */
public interface TransportSelector {
    /**
     * 初始化selector
     * @param peers 可以连接的server端点信息
     * @param count client 与server建立多少个连接
     * @param clazz client实现class
     */
    void init(List<Peer> peers, int count, Class<? extends TransportClient> clazz);
    /**
     * 选择一个transport 与server做交互
     * @return
     */
    TransportClient select();

    void release(TransportClient client);

    void close();
}
